#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>

using namespace std;

//auto Test()
//{
//	return 10;
//}
//int main()
//{
//	int a = 10;
//	auto b = a;
//	auto c = 'a';
//	auto d = Test();
//	cout << typeid(b).name() << endl;//int
//	cout << typeid(c).name() << endl;//char
//	cout << typeid(d).name() << endl;//int
//	
//	return 0;
//}


//int main()
//{
//	int x = 10;
//	auto a = &x;
//	auto* b = &x;
//	auto& c = x;
//	cout << typeid(a).name() << endl;//int*
//	cout << typeid(b).name() << endl;//int*
//	cout << typeid(c).name() << endl;//int
//
//	return 0;
//}


//void TestAuto(auto a)
//{
//
//}
//int main()
//{
//	auto b[] = { 1,2,3 };
//	return 0;
//}

int main()
{
	int arr[] = { 1,2,3,4,5,6,7,8,9,0 };
	for (int i = 0; i < sizeof(arr) / sizeof(int); i++)
	{
		cout << arr[i] << ' ';
	}
	cout << endl;
	for (int e : arr)
	{
		
		cout << e << ' ';
	}
	cout << endl;
	for (auto& e : arr)
	{
		e++;
		cout << e << ' ';
	}
	cout << endl;
	for (int e : arr)
	{

		cout << e << ' ';
	}
	return 0;
}

void f(int)
{
	cout << "f(int)" << endl;
}
void f(int*)
{
	cout << "f(int*)" << endl;
}
//int main()
//{
//	f(0);			//f(int)
//	f(NULL);		//f(int)
//	f((int*)NULL);	//f(int*)
//	return 0;
//}